リモートデスクトッププロトコル(RDP)について

この記事では、ターミナル サーバーとターミナル サーバー クライアント間の通信に使用されるリモート デスクトップ プロトコル (RDP) について説明します。 RDP はカプセル化され、TCP 内で暗号化されます。

適用対象: Windows Server 2012 R2
元の KB 番号: 186607

概要

RDP は、プロトコル標準の T-120 ファミリに基づいており、拡張されています。 マルチチャンネル対応プロトコルは、以下の情報を伝えるための仮想チャンネルを個別に用意することができる。

  • プレゼンテーション データ
  • シリアル デバイス通信
  • ライセンス情報
  • 高度に暗号化されたデータ (キーボード、マウス アクティビティなど)

RDP は、コア T.Share プロトコルの拡張機能です。 マルチポイント (マルチパーティ セッション) をサポートするために必要なアーキテクチャ機能など、RDP の一部として他のいくつかの機能が保持されます。 マルチポイント データ配信を使用すると、アプリケーションのデータを仮想ホワイトボードなどの複数の関係者に リアルタイム で配信できます。 同じデータを各セッションに個別に送信する必要はありません。

Windows ターミナル サーバーの最初のリリースでは、信頼性が高く高速なポイント・ツー・ポイント (単一セッション) 通信を提供することに重点を置いています。 ターミナル サーバー 4.0 の初期リリースでは、1 つのデータ チャネルのみが使用されます。 ただし、RDP の柔軟性により、将来の製品の機能に十分な余裕が与えられます。

Microsoft が Windows NT ターミナル サーバー内で接続目的で RDP を実装することを決定した理由の 1 つは、より多くの機能を構築するための拡張可能なベースが提供されていることです。 RDP は、データ転送用に 64,000 の個別のチャネルを提供します。 ただし、現在の送信活動は、1つのチャンネル(キーボード、マウス、プレゼンテーションデータ用)しか使っていません。

RDP は、ISDN、POTS など、さまざまな種類のネットワーク トポロジをサポートするように設計されています。 RDP は、IPX、NetBIOS、TCP/IP など、多くの LAN プロトコルをサポートするようにも設計されています。 現在のバージョンの RDP は、TCP/IP 経由でのみ実行されます。 お客様からのフィードバックにより、今後のバージョンで他のプロトコルサポートが追加される可能性があります。

RDP スタックを介したデータの送受信に関連する活動は、現在の一般的な LAN ネットワークの 7 層 OSI モデル標準と基本的に同じです。 送信するアプリケーションまたはサービスからのデータは、プロトコル スタックを介して渡されます。 セクション化され、チャネル (MCS 経由) に送信され、暗号化され、ラップされ、フレーム化され、ネットワーク プロトコルにパッケージ化され、最後にアドレス指定されてクライアントまでワイヤーを介して送信されます。 返されたデータは、逆向きにのみ同じように動作します。 パケットからアドレスが取り除かれ、ラップ解除、復号化などが行われる。 そして、そのデータは最終的にアプリケーションに提示され、利用される。 プロトコル スタックの変更の重要な部分は、データがある第 4 層と第 7 層の間で行われます。

  • 暗号化
  • ラップ
  • フレーム化
  • チャネルに送信される
  • 優先順位

アプリケーション開発者にとって重要なポイントの 1 つは、RDP を使用する際に、Microsoft がプロトコル スタックを処理する複雑さを抽象化していることです。 これにより、きれいで適切に設計された、適切に動作する 32 ビット アプリケーションを記述できます。 その後、ターミナル サーバーとそのクライアント接続によって実装される RDP スタックが残りの処理を行います。

アプリケーションがターミナルサーバー上でどのように相互作用するか、また、Windows ターミナルサーバーインフラ向けのアプリケーションを開発する際に知っておくべきことの詳細については、次のホワイトペーパーを参照してください。
Windows NT サーバー 4.0 用のアプリケーションの最適化、ターミナル サーバー エディション

RDP スタック インスタンス内で説明する価値のある 4 つのコンポーネントは次のとおりです。

  • マルチポイント通信サービス (MCSMUX)
  • ジェネリック・カンファレンス・コントロール(GCC)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux と GCC は、 国際電気通信連合 (ITU) T.120 ファミリの一部です。 MCS は、次の 2 つの標準で構成されています。

  • T.122: マルチポイント サービスを定義します
  • T.125: データ転送プロトコルを指定します

MCSMux コントロール:

  • プロトコル内の定義済みの仮想チャネルにデータを多重化するチャネル割り当て
  • 優先度レベル
  • 送信されるデータのセグメンテーション

基本的に GCC の観点から、複数の RDP スタックを 1 つのエンティティに抽象化します。 GCC はこれらの複数のチャネルの管理を担当します。 GCC では、MCS によって提供されるセッション接続と制御リソースを作成および削除できます。 各ターミナル サーバー プロトコル (現在、RDP と Citrix の ICA のみがサポートされています) には、プロトコル スタック インスタンスが読み込まれます (接続要求を待機しているリスナー スタック)。 ターミナル サーバー デバイス ドライバーは、RDP プロトコル アクティビティを調整して管理します。 これは、以下の小さなコンポーネントで構成されています。

  • UI 転送、圧縮、暗号化、フレーミングなどの RDP ドライバー (Wdtshare.sys)
  • 基になるネットワーク プロトコル TCP/IP にプロトコルをパッケージ化するトランスポート ドライバー (Tdtcp.sys)

RDP は、基になるトランスポート スタック (この場合は TCP/IP) から完全に独立するように開発されました。 つまり、お客様のニーズの拡大に合わせて、他のネットワーク プロトコル用の他のトランスポート ドライバーを追加できるうえ、プロトコルの基本的な部分に大きな変更はほぼ、またはまったくありません。 これらは、ネットワーク上の RDP のパフォーマンスと拡張性の重要な要素です。